package pub.xspace.nova.common.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;

import pub.xspace.nova.common.constant.Constant;
import pub.xspace.nova.common.domain.AjaxResult;

@Controller
public class BaseController {
	
	protected Logger log = LoggerFactory.getLogger(getClass());
    /**
     * 默认成功结果
     *
     * @return 成功的AjaxResult对象
     */
    protected AjaxResult success() {
        return new AjaxResult(Constant.RESULT_SUCCESS_CODE, Constant.RESULT_SUCCESS_MSG);
    }

    /**
     * 带返回数据的成功结果
     *
     * @param data 返回数据
     * @return 成功的AjaxResult对象
     */
    protected AjaxResult success(Object data) {
        return new AjaxResult(Constant.RESULT_SUCCESS_CODE, Constant.RESULT_SUCCESS_MSG, data);
    }

    /**
     * 带自定义消息的成功结果
     *
     * @param message 自定义消息
     * @return 成功的AjaxResult对象
     */
    protected AjaxResult success(String message) {
        return new AjaxResult(Constant.RESULT_SUCCESS_CODE, message);
    }

    /**
     * 带自定义消息和数据的成功结果
     *
     * @param message 自定义消息
     * @param data    返回数据
     * @return 成功的AjaxResult对象
     */
    protected AjaxResult success(String message, Object data) {
        return new AjaxResult(Constant.RESULT_SUCCESS_CODE, message, data);
    }

    /**
     * 默认的失败结果
     *
     * @return 失败的AjaxResult对象
     */
    protected AjaxResult failure() {
        return new AjaxResult(Constant.RESULT_FAIL_CODE, Constant.RESULT_FAIL_MSG);
    }

    /**
     * 带自定义消息的失败结果
     *
     * @param message 自定义返回消息
     * @return 失败的AjaxResult对象
     */
    protected AjaxResult failure(String message) {
        return new AjaxResult(Constant.RESULT_FAIL_CODE, message);
    }
}
